home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / aztec / code.lua next >
Text File  |  2005-07-16  |  7KB  |  205 lines

  1.  
  2. -- -----------------------------------------------------------------
  3. -- Init
  4. -- -----------------------------------------------------------------
  5. local function prog_init()
  6.     initModels()
  7.     sound_playMusic("music/rybky06.ogg")
  8.     local pokus = getRestartCount()
  9.  
  10.  
  11.     -- -------------------------------------------------------------
  12.     local function prog_init_room()
  13.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  14.  
  15.         room.olebce = 0
  16.         room.odrackovi = 0
  17.         if pokus > 1 and random(100) < 50 then
  18.             room.odrackovi = 1
  19.         end
  20.         room.osklebakovi = random(2000) + 500
  21.         room.osklebu = 0
  22.         room.opadu = 0
  23.         if pokus == 1 then
  24.             room.uvod = 1
  25.         else
  26.             room.uvod = random(3)
  27.         end
  28.  
  29.         return function()
  30.             if no_dialog() and isReady(small) and isReady(big) then
  31.                 pom1 = 0
  32.                 for key, model in pairs(getModelsTable()) do
  33.                     if model ~= konik then
  34.                         if model.dir == dir_down and model.Y >= 10 then
  35.                             if model:getW() + model:getH() == 3 then
  36.                                 pom1 = pom1 + 1
  37.                             end
  38.                         end
  39.                     end
  40.                 end
  41.                 if room.osklebakovi > 0 then
  42.                     room.osklebakovi = room.osklebakovi - 1
  43.                 end
  44.                 if room.uvod == 1 then
  45.                     room.uvod = 0
  46.                     addm(random(40) + 20, "bot-m-vidis")
  47.                     addv(random(10), "bot-v-uveznen"..random(2))
  48.                     addm(random(50) + 10, "bot-m-zajem")
  49.                     addv(random(10), "bot-v-podivat")
  50.                 elseif room.uvod == 2 and small.Y <= 9 then
  51.                     room.uvod = 0
  52.                     addm(random(40) + 20, "bot-m-vidis")
  53.                     addv(random(10), "bot-v-uveznen"..random(2))
  54.                 elseif room.olebce == 0 and dist(small, lebzna) < 4 then
  55.                     room.olebce = 1
  56.                     switch(random(2)){
  57.                         [0] = function()
  58.                             addv(5, "bot-v-lebka")
  59.                         end,
  60.                         [1] = function()
  61.                             addm(5, "bot-m-vidim")
  62.                         end,
  63.                     }
  64.                 elseif room.odrackovi == 0 and look_at(small, zlaty) and dist(small, zlaty) < 4 and random(100) < 6 then
  65.                     room.odrackovi = 1
  66.                     addm(5, "bot-m-zivy")
  67.                 elseif room.osklebakovi == 0 then
  68.                     addv(50, "bot-v-vsim")
  69.                     addm(random(20), "bot-m-vypada")
  70.                     planSet(sklebak, "cinnost", 10)
  71.                     room.osklebakovi = -1
  72.                 elseif room.osklebu == 0 and sklebak:isTalking() then
  73.                     room.osklebu = 1
  74.                 elseif room.osklebu == 1 and not sklebak:isTalking() then
  75.                     if dist(small, sklebak) < 3 then
  76.                         room.osklebu = 2
  77.                         addm(10, "bot-m-ble")
  78.                         if random(100) < 60 then
  79.                             addv(random(10) + 5, "bot-v-totem")
  80.                         end
  81.                     else
  82.                         room.osklebu = 0
  83.                     end
  84.                 elseif room.opadu == 0 and pom1 == 1 and random(100) < 5 then
  85.                     room.opadu = 1
  86.                     addm(10, "bot-m-padaji")
  87.                     addv(random(20), "bot-v-vsak"..random(2))
  88.                 end
  89.             end
  90.         end
  91.     end
  92.  
  93.     -- -------------------------------------------------------------
  94.     local function prog_init_sklebak()
  95.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  96.  
  97.         sklebak.cinnost = 0
  98.  
  99.         return function()
  100.             switch(sklebak.cinnost){
  101.                 [0] = function()
  102.                     sklebak.afaze = 0
  103.                     if random(1000) < 5 then
  104.                         switch(random(2)){
  105.                             [0] = function()
  106.                                 sklebak.cinnost = 10
  107.                             end,
  108.                             [1] = function()
  109.                                 sklebak.cinnost = 20
  110.                             end,
  111.                         }
  112.                     end
  113.                 end,
  114.                 [10] = function()
  115.                     setanim(sklebak, "a2a3a4R")
  116.                     sklebak:talk("bot-x-smich", VOLUME_FULL)
  117.                     sklebak.cinnost = sklebak.cinnost + 1
  118.                 end,
  119.                 [11] = function()
  120.                     goanim(sklebak)
  121.                     if not sklebak:isTalking() then
  122.                         sklebak.cinnost = 100
  123.                     end
  124.                 end,
  125.                 [20] = function()
  126.                     sklebak.afaze = 5
  127.                     sklebak:talk("bot-x-gr"..random(2), VOLUME_FULL)
  128.                     sklebak.cinnost = sklebak.cinnost + 1
  129.                 end,
  130.                 [21] = function()
  131.                     if not sklebak:isTalking() then
  132.                         sklebak.cinnost = 100
  133.                     end
  134.                 end,
  135.                 [100] = function()
  136.                     sklebak.afaze = 0
  137.                     sklebak.cinnost = sklebak.cinnost + 1
  138.                 end,
  139.                 [120] = function()
  140.                     sklebak.cinnost = 0
  141.                 end,
  142.                 default = function()
  143.                     sklebak.cinnost = sklebak.cinnost + 1
  144.                 end,
  145.             }
  146.             sklebak:updateAnim()
  147.         end
  148.     end
  149.  
  150.     -- -------------------------------------------------------------
  151.     local function prog_init_zlaty()
  152.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  153.  
  154.         setanim(zlaty, "a0d2a1d2R")
  155.  
  156.         return function()
  157.             goanim(zlaty)
  158.             zlaty:updateAnim()
  159.         end
  160.     end
  161.  
  162.     -- -------------------------------------------------------------
  163.     local function prog_init_lebzna()
  164.         return function()
  165.             if odd(game_getCycles()) then
  166.                 lebzna.afaze = math.mod(lebzna.afaze + 1, 4)
  167.                 lebzna:updateAnim()
  168.             end
  169.         end
  170.     end
  171.  
  172.     -- --------------------
  173.     local update_table = {}
  174.     local subinit
  175.     subinit = prog_init_room()
  176.     if subinit then
  177.         table.insert(update_table, subinit)
  178.     end
  179.     subinit = prog_init_sklebak()
  180.     if subinit then
  181.         table.insert(update_table, subinit)
  182.     end
  183.     subinit = prog_init_zlaty()
  184.     if subinit then
  185.         table.insert(update_table, subinit)
  186.     end
  187.     subinit = prog_init_lebzna()
  188.     if subinit then
  189.         table.insert(update_table, subinit)
  190.     end
  191.     return update_table
  192. end
  193. local update_table = prog_init()
  194.  
  195.  
  196. -- -----------------------------------------------------------------
  197. -- Update
  198. -- -----------------------------------------------------------------
  199. function prog_update()
  200.     for key, subupdate in pairs(update_table) do
  201.         subupdate()
  202.     end
  203. end
  204.  
  205.